package day14;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

//测试 Collection接口
public class Test3_Collection {
    public static void main(String[] args) {
        //1,创建对象 --泛型约束里的类型是 引用类型 不能是基本类型
        Collection<Integer> c = new ArrayList<>();
        //2,调用方法
        c.add(1) ;
        c.add(2) ;
        c.add(3) ;
        c.add(4) ;
        c.add(5) ;
        System.out.println(c);//[1, 2, 3, 4, 5]
//        c.clear(); //清空集合
        System.out.println( c.contains(5) );//判断集合中是否包含
        System.out.println( c.equals(123) );//判断集合和123是否相等
        System.out.println( c.hashCode() );//获取c的哈希码值
        System.out.println( c.remove(3) );//移除3
        System.out.println( c.isEmpty() );//判断是否为空
        System.out.println( c.size() );//获取集合的长度
        Object[] os = c.toArray();//集合 转 数组
        System.out.println( Arrays.toString(os) );//[1, 2, 4, 5]
        //TODO 集合间的操作 -了解
        Collection<Integer> c2 = new ArrayList<>();
        c2.add(1);
        c2.add(2);
        System.out.println( c.addAll(c2) );//把c2加到c里 -->124512
        System.out.println( c.containsAll(c2) );//判断c里包含c2吗
//        System.out.println( c.removeAll(c2) );//移除交集
//        System.out.println( c.retainAll(c2) );//保留交集
        //TODO 获取集合里的元素
 //方式一:: Iterator<E> iterator() -- 返回迭代器Iterator,专门用来迭代集合里的元素
        Iterator<Integer> it = c.iterator();
        while( it.hasNext() ){//hasNext()判断有元素吗,有的话就返回true
            Integer in = it.next();//next()获取元素
            System.out.println(in);
        }
 //方式二:: foreach -- Collection接口也可以用
        //语法: for(数据的类型  变量名 : 容器){}
        for(Integer  in : c){
            System.out.println(in);
        }
    }
}
